/**
 * 生成裁剪路径
 * @param ctx
 * @param size
 * @param styleIndex
 */
export var createClipPath = function createClipPath(ctx) {
  var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;
  var styleIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
  var styles = [
    [0, 0, 0, 0],
    [0, 0, 0, 1],
    [0, 0, 1, 0],
    [0, 0, 1, 1],
    [0, 1, 0, 0],
    [0, 1, 0, 1],
    [0, 1, 1, 0],
    [0, 1, 1, 1],
    [1, 0, 0, 0],
    [1, 0, 0, 1],
    [1, 0, 1, 0],
    [1, 0, 1, 1],
    [1, 1, 0, 0],
    [1, 1, 0, 1],
    [1, 1, 1, 0],
    [1, 1, 1, 1],
  ];
  var style = styles[styleIndex];
  var r = 0.1 * size;
  ctx.save();
  ctx.beginPath();
  // left
  ctx.moveTo(r, r);
  ctx.lineTo(r, 0.5 * size - r);
  // @ts-ignore
  ctx.arc(r, 0.5 * size, r, 1.5 * Math.PI, 0.5 * Math.PI, style[0]);
  ctx.lineTo(r, size - r);
  // bottom
  ctx.lineTo(0.5 * size - r, size - r);
  // @ts-ignore
  ctx.arc(0.5 * size, size - r, r, Math.PI, 0, style[1]);
  ctx.lineTo(size - r, size - r);
  // right
  ctx.lineTo(size - r, 0.5 * size + r);
  // @ts-ignore
  ctx.arc(size - r, 0.5 * size, r, 0.5 * Math.PI, 1.5 * Math.PI, style[2]);
  ctx.lineTo(size - r, r);
  // top
  ctx.lineTo(0.5 * size + r, r);
  // @ts-ignore
  ctx.arc(0.5 * size, r, r, 0, Math.PI, style[3]);
  ctx.lineTo(r, r);
  ctx.clip();
  ctx.closePath();
};
